1. Kernel Learning问题
对于Kernel Learning这个问题,我们可以这样认为:
给定一个kernel K, 我们在一些点集上同样有constraints,这个时候,为了使得这些点之间的pairwise distance服从constraints的情况,我们需要优化这个kernel,这就是kernel learning问题的基本定义。
相信你可以看到,这个定义已经和我们讨论的ITML有一定的相似性,我们先从Kulis2006的这篇 low-rank kernel learning的文章来讲起:
对于low-rank kernel learning的输入,是一个specified kernel K0, 我们的目标是使得我们需要的kernel K 无限接近 K0 ,而这种“接近”自然是由我们的LogDet divergence来衡量的,好了,那么对于这个问题。
首先,我们知道给定的A0是如下形式的, K0=XTA0X,它是一个n×n的方阵,优化问题如下:
Equation.1
minKDld(K,K0)
s.t.
Kii+Kjj−2Kij≤v,(i,j)∈S
Kii+Kjj−2Kij≥l,(i,j)∈D
K⪰0
2. Kernel Learning和ITML的联系
现在已经看出一点端倪了,实际上这两个问题的关联在于如何证明K和A存在着“强关联”。回想下我们在上一篇中介绍的关于A和A0的LogDet优化:
Equation.2
minA⪰0Dld(A,A0)
s.t.
tr(A(xi−xj)(xi−xj)T)≤v,(i,j)∈S
tr(A(xi−xj)(xi−xj)T)≥l,(i,j)∈D
为了证明它们之间的关联,我们给出一个引理及其证明,如下:
Lemma.1
给定K=XTAX,当且仅当K是Equation.1的可行解的情况下,A是Equation.2的可行解。
证明: Kii+Kjj−2Kij可写成(ei−ej)TK(ei−ej)=(xi−xj)TA(xi−xj)。因此,对于similar constraint,Kii+Kjj−2Kij≤v等价于tr(A(xi−xj)(xi−xj)T)≤v。同理,适用于dissimilar constraint。得证。
由上,我们可以给出一个定理及其证明:
Theorem.1
给定Equation.1的最优解K⋆及Equation.2的最优解A⋆,必有K⋆=XTA⋆X。
证明: 对于Equation.1的Bregman projection update可写为:
At+1=At+βAt(xi−xj)(xi−xj)TAt
对于Equation.2的Bregman projection update 则可写为:
Kt+1=Kt+βKt(ei−ej)(ei−ej)TKt
优化的算法可以得出,两者当中使用的β是一致的,接下来可以归纳证明,在每一次迭代的过程中,都满足关系Kt=XTAtX(给定初始条件:K0=XTA0X)
假设Kt=XTAtX则:
Kt+1
=Kt+βKt(ei−ej)(ei−ej)TKt
=XTAtX+βXTAtX(ei−ej)(ei−ej)TXTAtX
=XTAtX+βXTAt(xi−xj)(xi−xj)TAtX
=XT(At+At(xi−xj)(xi−xj)TAt)X
=XTAt+1X如果K能收敛到K⋆,那么A也能收敛到A⋆。则两个问题等价,定理得证。
那么,通过这么多的推论和证明,我们终于可以认为ITML算法实际上与low-rank kernel learning的问题是一致的,因此,我们可以将ITML算法的输入由一个初始矩阵A0置换成K0,将限制条件更改为Kii+Kjj−2Kij,而相应的输出也变成了一个K⋆。
3. ITML算法的核化
我们在上一篇提及ITML的思想是希望优化的A在满足constraints的情况下尽可能地逼近A0,而A0的选择就体现出了你想要求解一个怎样的问题。
假设,我希望这个度量是满足欧氏距离特性的,那么就应该选择单位矩阵I来作为初始化的A0。由此,假设A0=I,则K0=XTA0X=XTX,实际上就是一个Gram矩阵。
这里我们定义一个kernel function来替代上述这种直观的表达,即
k(x,y)=ϕ(x)Tϕ(y)
其中ϕ()理解为对于变量的非线性转换函数。转换到核空间后,我们是否还能通过估量来学习到一个合适的metric呢?
实际上,我们的metric定义变成了:
dA(ϕ(x),ϕ(y))=(ϕ(x)−ϕ(y))TA(ϕ(x)−ϕ(y))
=ϕ(x)TAϕ(x)−2ϕ(x)TAϕ(y)+ϕ(y)TAϕ(y)
随后,我们定义一个新的核公式:
˜k(x,y)=ϕ(x)TAϕ(y)
虽然我们没有办法直接去计算A(可以理解为hilbert space下的一个operator),但是我们依然可以计算˜k(x,y),由于A0=I,我们可以考虑递归地展开学习到的matrix A:
A=I+∑i,jσijϕ(xi)ϕ(xj)T
这是核化之后的A,它依然希望能够尽量逼近I,这里我们引入了一些系数coefficient σij。这样,就可以写出新的核公式的表达形式:
˜k(x,y)=ϕ(x)TAϕ(y)=ϕ(x)T(I+∑i,jσijϕ(xi)ϕ(xj)T)ϕ(y)
=ϕ(x)Tϕ(y)+∑i,jσijϕ(x)Tϕ(xi)ϕ(xj)Tϕ(y)
=k(x,y)+∑i,jσijk(x,xi)k(xi,y)
到这里,我们看到,新的核公式是老的核公式和一系列系数的组合,通过优化Equation.2当中的问题,我们可以得到一系列系数σij来估量新的核函数˜k()。
4. 在线算法
在一般的metric learning甚至于优化问题当中,通常程序是接收一堆数据并进行最小化的工作。我们接下介绍一个online算法,能够在线增量地对metric进行优化和学习。
在online算法里,假设算法接收一个实例(xt,yt,dt),其中t是一个time step,并且使用当前的model At预测一个distance ~dAt=dAt(xt,yt)。
那么这个prediction的loss可以表达为lt(At)=(dt−~dt)2。其中,dt我们称之为xt和yt之间的”true/target” distance。
那么通过一次prediction,算法将At修改为At+1,并且用新的model进行接下来的预测,我们于是得到predicitons的total loss 为∑tlt(At)。
对于这样一个total loss,由于输入数据和他们的target distance是没有关联的,我们找不到它的bound,一个可行的方案就是将其和离线阶段中的最佳可能(best possible)方案进行对比。
对于最佳可能方案,可以这样得到,假设给出一个T-trail sequence S={(x1,y1,d1),…,(xT,yT,dT)}, best possible方案满足:
A⋆=argminA⪰0T∑t=1lt(A)
理解起来非常简单易懂,就是对于离线给定的测试序列,total loss最小化的。
这样,对于online算法而言,就是将得到的total loss和最佳可能方案进行对比。
一个解决在线学习的通用方法是在每一个time step解决下列正规化优化问题:
minA⪰0f(A)=Regularization Term⏞D(A,At)+ηt⋅Loss Term⏞lt(A)
这个公式中:
- ηt是t时刻的learning rate,D是用来测量新计算的matrix A和当前的At的散度。
- Regulartization Term: 最小化两者散度是为了使得两者尽量靠近而保证最小化趋于平稳。
- Loss Term: 是为了使得计算的model A和特定时刻的At保持一致。使得学习到的distance尽量与target distance保持一致。
- 而learning rate则跟具体问题相关,需要进行调节。
这个问题中,我们同样用LogDet来表示散度D,于是可以得到:
At+1=argminADld(A,At)+ηt(dt−~dt)2